package com.zatech.cgnci.project.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * <p>
 * 理赔案件主表
 * </p>
 *
 * @author Generator
 * @since 2024-12-23
 */
@Data
@TableName("cgnci_claim_case")
@ApiModel(value = "CgnciClaimCaseDO对象", description = "理赔案件表")
public class CgnciClaimCaseDO implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty("主键ID")
    @TableId(value = "case_id", type = IdType.AUTO)
    private Long caseId;

    @ApiModelProperty("立案号")
    private String caseNo;

    @ApiModelProperty("案件名称")
    private String caseName;

    @ApiModelProperty("保单号")
    private String policyNo;

    @ApiModelProperty("项目名称")
    private String projectName;

    @ApiModelProperty("案件状态")
    private String caseStatus;

    @ApiModelProperty("是否巨灾案件")
    private Boolean isCatastrophe;

    @ApiModelProperty("巨灾名称")
    private String catastropheName;

    @ApiModelProperty("出险日期")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT-8")
    private Date accidentDate;

    @ApiModelProperty("出险日期止期")
    private Date accidentEndDate;

    @ApiModelProperty("出险原因")
    private String accidentReason;

    @ApiModelProperty("通知日期")
    private Date notifyDate;

    @ApiModelProperty("立案日期")
    private Date registerDate;

    @ApiModelProperty("原始币种")
    private String originalCurrency;

    @ApiModelProperty("结算币种")
    private String settlementCurrency;

    @ApiModelProperty("报损金额币种")
    private String reportCurrency;

    @ApiModelProperty("报损金额")
    private BigDecimal reportAmount;

    @ApiModelProperty("初步立案金额币种")
    private String estimateCurrency;

    @ApiModelProperty("初步立案金额")
    private BigDecimal estimateAmount;

    @ApiModelProperty("摊赔金额币种")
    private String compensationCurrency;

    @ApiModelProperty("公估费")
    private BigDecimal estimationAmount;

    @ApiModelProperty("摊赔金额")
    private BigDecimal compensationAmount;

    @ApiModelProperty("总计金额")
    private BigDecimal totalAmount;

    @ApiModelProperty("赔案情况简介")
    private String claimDesc;

    @ApiModelProperty("适用免赔额说明")
    private String deductibleDesc;

    @ApiModelProperty("联络人姓名")
    private String contactName;

    @ApiModelProperty("联络人电话")
    private String contactPhone;

    @ApiModelProperty("联络人邮箱")
    private String contactEmail;

    @ApiModelProperty("保单险类")
    private String policyInsuranceType;

    @ApiModelProperty("保单起保日期")
    private Date policyStartDate;

    @ApiModelProperty("保单终保日期")
    private Date policyEndDate;

    @ApiModelProperty("承保年度")
    private String policyYear;

    @ApiModelProperty("保单币种")
    private String policyCurrency;

    @ApiModelProperty("是否转分")
    private Boolean reinsureFlag;

    @ApiModelProperty("首次结案时间")
    private Date firstCloseTime;

    @ApiModelProperty("结案时间")
    private Date closeTime;

    @ApiModelProperty("首次结案金额")
    private BigDecimal firstCloseAmount;

    @ApiModelProperty("最新结案金额")
    private BigDecimal latestCloseAmount;

    @ApiModelProperty("备注")
    private String remarks;

    @ApiModelProperty("版本号")
    private Integer version;

    @ApiModelProperty("是否删除")
    private String deleted;

    @ApiModelProperty("代理人工号-名称")
    private String currentAgentAndName;

    @ApiModelProperty("创建人")
    private String creator;

    @ApiModelProperty("创建时间")
    private Date createTime;

    @ApiModelProperty("更新人")
    private String updater;

    @ApiModelProperty("更新时间")
    private Date updateTime;

    @ApiModelProperty("重开状态(REOPEN_PENDING-重开待审核 REOPENED-已重开)")
    private String reopenStatus;

    @ApiModelProperty("重开原因")
    private String reopenReason;

    @ApiModelProperty("重开时间")
    private Date reopenTime;

    @ApiModelProperty("重开次数")
    private Integer reopenCount;


}
